package com.fypg.module.blooddonation.api.controller.app.bloodDonation.vo;

import com.fypg.module.blooddonation.api.client.dal.bloodStation.BaseApiReq;
import com.fypg.module.blooddonation.api.dto.bloodDonationDetail.MedicalCardInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 新增献血预约输入参数
 * @author 盘古
 */
@Data
@Schema(description = "新增献血预约输入参数")
public class AddBloodDonationOrderReqVO extends BaseApiReq {

    /**
     * 医疗卡信息
     */
    @Valid
    @NotNull(message = "医疗卡信息不能为空")
    @Schema(description = "医疗卡信息", required = true)
    private MedicalCardInfo medicalCardInfo;

    /**
     * 献血日期
     */
    @NotBlank(message = "献血日期不能为空")
    @Schema(description = "献血日期", example = "2024-01-15", required = true)
    private String bloodDonationDate;

    /**
     * 开始时间
     */
    @NotBlank(message = "开始时间不能为空")
    @Schema(description = "开始时间", example = "09:00", required = true)
    private String bloodDonationBeginTime;

    /**
     * 结束时间
     */
    @NotBlank(message = "结束时间不能为空")
    @Schema(description = "结束时间", example = "10:00", required = true)
    private String bloodDonationEndTime;

    /**
     * 献血类型
     */
    @NotBlank(message = "献血类型不能为空")
    @Schema(description = "献血类型", example = "0", required = true, allowableValues = {"0", "1"})
    private String bloodDonationType;

    /**
     * 采血地点编码
     */
    @NotBlank(message = "采血地点编码不能为空")
    @Schema(description = "采血地点编码", example = "1331040131104000000", required = true)
    private String bloodDonationEncode;

    /**
     * 手机号码
     */
    @NotBlank(message = "手机号码不能为空")
    @Schema(description = "手机号码", example = "13800138000")
    private String phone;

    /**
     * 地址
     */
    @NotBlank(message = "地址不能为空")
    @Schema(description = "地址", example = "广东省佛山市")
    private String address;

    /**
     * 民族类型
     */
    @NotBlank(message = "民族类型不能为空")
    @Schema(description = "民族类型", example = "1")
    private String nationType;

    /**
     * 户籍类型
     */
    @NotBlank(message = "户籍类型不能为空")
    @Schema(description = "户籍类型", example = "5")
    private String householdRegisterType;

    /**
     * 工作类型
     */
    @NotBlank(message = "工作类型不能为空")
    @Schema(description = "工作类型", example = "7331038130228000000")
    private String workType;

    /**
     * 婚姻状况类型
     */
    @NotBlank(message = "婚姻状况类型不能为空")
    @Schema(description = "婚姻状况类型", example = "1")
    private String maritalStatusType;

    /**
     * 教育程度类型
     */
    @NotBlank(message = "教育程度类型不能为空")
    @Schema(description = "教育程度类型", example = "20")
    private String educationalLevelType;
}
